"""
Раздача органицаций по принципу - КОЛИЧЕСТВО НА ЗАКАЗ
Ошибка - выводит пустые csv
"""

import os
import sys
import datetime
import logging
import itertools
import re
import sqlite3


from PyQt5.QtWidgets import *
from PyQt5.QtGui import *


def get_curator():
    """
    Функция генератор. Возвращает фамилии кураторов для распределения.
    """
    while 1:                                                                    # для бесконечной работы генератора
        for cur in curators:                                                    # пробегаем по списку курторов
            if type(curators[cur]) == int:                                      # если в словаре число раздач
                if curators[cur] > 0:                                           # и лимит не вышел
                    curators[cur] -= 1                                          # уменьшаем на единицу
                    yield cur                                                   # выдаём фамилию куратора
            else:
                yield cur                                                       # иначе, если числа нет, просто выдаём фамилию куратора


if __name__ == '__main__':

    app = QApplication(sys.argv)
    
    logging.basicConfig(filename='distribS.log',level=logging.DEBUG,
        format = u'%(filename)s[LINE:%(lineno)d]# %(levelname)-8s %(message)s')

    if not os.path.exists('outfile'):                                           
        os.makedirs('outfile')

    conn = sqlite3.connect("distrib.db")                                        # все вакансии для распределения
    query = conn.cursor()                                                      # для обхода записей

    """ Меняем всех пустых кураторов на Супервайзера."""
    query.execute("UPDATE vacant SET curator = 'Супервайзер' WHERE curator = ''")
    conn.commit()

    """Собираем всех кураторов из базы и делаем из них список."""
    query.execute("SELECT curator FROM vacant GROUP BY curator;")
    curators = list(query)
    
    t = datetime.datetime.today()
    pref = t.strftime("%d-%I-%M")

    # Итерация спискау кураторов.
    # вывод csv по каждому менеджеру
    for cur in curators:                                                        # вывод csv по каждому менеджеру
        curator = cur[0]
        namef = "outfile\\{} {}.csv".format(pref, curator)
        f = open(namef, 'w')
        query.execute("SELECT org, face, phone, phone_find, org_CRM,"
            "url, curator "
            "FROM vacant WHERE curator = '{}'".format(curator))
        for org, face, phone, phone_find, org_CRM, url, curator in query:
            s = ('{}${}${}$>{}<${}$=HYPERLINK("{}")${}\n'.
            format(org, face, phone, phone_find, org_CRM, url, curator))
            f.write(s)
        f.close()

    query.executescript("DELETE FROM vacant; VACUUM;")                          # очистить рабочую таблицу и схлопуть базу
